package cn.lili.modules.order.order.entity.dto;

import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.modules.order.order.entity.enums.DeliverStatusEnum;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 订单导出DTO
 * @author Bulbasaur
 * @since 2021/6/3 6:36 下午
 *
 */
@Data
public class OrderExportDTO {

    @ApiModelProperty("订单编号")
    private String sn;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "用户名")
    private String memberName;

    @ApiModelProperty(value = "收件人姓名")
    private String consigneeName;

    @ApiModelProperty(value = "收件人手机")
    private String consigneeMobile;

    @ApiModelProperty(value = "收件人地址")
    private String consigneeAddressPath;

    @ApiModelProperty(value = "详细地址")
    private String consigneeDetail;

    @ApiModelProperty(value = "支付方式")
    private String paymentMethod;

    @ApiModelProperty(value = "物流公司名称")
    private String logisticsName;

    @ApiModelProperty(value = "运费")
    private Double freightPrice;

    @ApiModelProperty(value = "商品价格")
    private Double goodsPrice;

    @ApiModelProperty(value = "优惠的金额")
    private Double discountPrice;

    @ApiModelProperty(value = "总价格")
    private Double flowPrice;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "商品数量")
    private Integer num;

    @ApiModelProperty(value = "买家订单备注")
    private String remark;

    /**
     * @see OrderStatusEnum
     */
    @ApiModelProperty(value = "订单状态")
    private String orderStatus;

    /**
     * @see ClientTypeEnum
     */
    @ApiModelProperty(value = "订单来源")
    private String clientType;

    /**
     * @see PayStatusEnum
     */
    @ApiModelProperty(value = "付款状态")
    private String payStatus;

    /**
     * @see DeliverStatusEnum
     */
    @ApiModelProperty(value = "货运状态")
    private String deliverStatus;

    @ApiModelProperty(value = "是否需要发票")
    private Boolean needReceipt;

    @ApiModelProperty(value = "店铺名称")
    private String storeName;

    @ApiModelProperty(value = "商品采集地址")
    private String goodsGrabUrl;

    @ApiModelProperty(value = "商品skuId")
    private String goodsId;

    @ApiModelProperty(value = "店铺结算金额")
    private Double sellerSettlementPrice;

    @ApiModelProperty(value = "供应商结算金额")
    private Double supplierSettlementPrice;

    @ApiModelProperty(value = "平台结算金额")
    private Double platformSettlementPrice;

    @ApiModelProperty(value = "绿色积分")
    private Double greenScore;

    @ApiModelProperty(value = "店铺绿色积分分佣")
    private Double storeGreenScore;

    @ApiModelProperty(value = "供应商绿色积分分佣")
    private Double supplierGreenScore;

    @ApiModelProperty(value = "用户绿色积分分佣")
    private Double memberGreenScore;

    @ApiModelProperty(value = "城市站点绿色积分分佣")
    private Double siteGreenScore;

    @ApiModelProperty(value = "城市地址绿色积分分佣")
    private Double siteAddressGreenScore;

    @ApiModelProperty(value = "平台绿色积分分佣")
    private Double platformGreenScore;

    @ApiModelProperty(value = "收货地址")
    private String consigneeAddress;

    @ApiModelProperty(value = "订单商品成本价")
    private Double costPrice;

    @ApiModelProperty(value = "发货商品-针对盲盒才有")
    private String sendGoods;

    @ApiModelProperty(value = "发货商品图片-针对盲盒才有")
    private String sendGoodsImg;

    @ApiModelProperty(value = "发货商品数量-针对盲盒才有")
    private Integer sendGoodsNum;

    @ApiModelProperty(value = "价格详情")
    private String priceDetail;

    @ApiModelProperty(value = "商品规格ID")
    private String skuId;

    @ApiModelProperty(value = "F分抵扣金额")
    private Double fmoney;

    @ApiModelProperty(value = "商品分类路径")
    private String goodsCategoryPath;

    /**
     * 盲盒ID
     */
    private String mhId;
    /**
     * 盲盒名称
     */
    private String mhName;

    @ApiModelProperty(value = "工会绿色积分分佣")
    private Double unionGreenScore = 0D;

    @ApiModelProperty(value = "城主绿色积分分佣")
    private Double castellanGreenScore = 0D;

    @ApiModelProperty(value = "上推佣金（店主-下级用户订单分佣）")
    private Double lowerCommiss = 0D;

    @ApiModelProperty(value = "间推佣金（店主-间推用户订单分佣）")
    private Double lowerSubCommiss = 0D;

    @ApiModelProperty(value = "公益投放获得的绿色积分分佣")
    private Double greenCommonwealGreenScore = 0D;

    @ApiModelProperty(value = "订单成本")
    private Double orderCost = 0D;

    /**
     * 交易流水号
     */
    private String outTradeNo;

}
